package com.tianhua.javs.client.bean;

import com.tianhua.javs.client.model.AbstractClassModel;
import com.tianhua.javs.client.model.FieldModel;
import com.tianhua.javs.client.model.MethodModel;
import lombok.Data;

import java.util.List;

/**
 * Description:
 * date: 2022/2/11
 *
 * @author shenshuai
 * @version 1.0.0
 * @since JDK 1.8
 */
@Data
public class JavsModelBean {
    /**
     * dto,bo,do支持的javs变量
     */
    private String modelVar;

    /**
     * 属于哪种对象模型 dto,bo,do或者普通数据类型的对象模型
     */
    private String modelKeyWard;

    /**
     * 模型指代的对象类型
     * 如bo ---> XxxBO
     */
    private String className;

    /**
     * 对象对应的变量名称
     */
    private String classVarName;

    /**
     * 对象所在的包名
     */
    private String packageName;


    /**
     * convert函数对应的接口实例
     * 支持
     * convertdto
     * convertdtos
     */
    public AbstractClassModel convertdto;

    /**
     * convert函数对应的接口实例
     * 支持
     * convertdo
     * convertdos
     */
    public AbstractClassModel convertdo;


    /**
     * bo对应的factory 对象service列表
     */
    public List<AbstractClassModel> factoryList;

    /**
     * bo对应的repository 对象service列表
     */
    public List<AbstractClassModel> repositoryList;

    /**
     * bo对应的service 对象service列表
     */
    public List<AbstractClassModel> serviceList;


    /**
     * bo对应的gataway 对象service列表
     */
    public List<AbstractClassModel> gatawayList;


    /**
     * bo对应的本身的方法method列表
     */
    public List<MethodModel> methodModelList;

    /**
     * bo对应的本身的属性field列表
     */
    public List<FieldModel> fieldModelList;

    /**
     * convert函数对应的接口实例
     * 支持
     * convertbo
     * convertbos
     */
    private AbstractClassModel convertbo;


    /**
     * do可以调用的dao 操作类
     */
    private AbstractClassModel mapper;



    /**
     * cmd对应的executor 对象executor列表
     */
    private List<AbstractClassModel> executorList;

}
